package com.tqjc.area.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.tqjc.area.entity.Roller;

import java.util.List;

/**
 * @Description: 辊道信息服务类
 * @author: pzy
 * @date: 2023年05月17日 10:40
 */
public interface RollerService extends IService<Roller> {

    /**
     * @param x:
     * @param y:
     * @return List<Roller>
     * @author Patienyon
     * @description 根据坐标获取对应辊道
     * @date 2023/6/16 15:42
     */
    List<Roller> selectRollersByXAndY(Integer x, Integer y);

    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    Roller queryById(Integer id);

    /**
     * 分页查询
     *
     * @param roller  筛选条件
     * @param current 当前页码
     * @param size    每页大小
     * @return
     */
    Page<Roller> paginQuery(Roller roller, long current, long size);

    /**
     * 新增数据
     *
     * @param roller 实例对象
     * @return 实例对象
     */
    Roller insert(Roller roller);

    /**
     * 更新数据
     *
     * @param roller 实例对象
     * @return 实例对象
     */
    Roller update(Roller roller);

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 是否成功
     */
    boolean deleteById(Integer id);

    /**
     * 通过querymapper查询
     *
     * @param queryWrapper:查询条件
     * @return 辊道数据
     */
    List queryRoller(QueryWrapper queryWrapper);


    /**
     * create by: pzy
     * description: 通过天车ID查询对应的辊道
     * create time: 2023/5/23 16:05
     *
     * @return java.util.List<com.tqjc.area.entity.Roller>
     * @param: [craneIds]
     */
    List<Roller> selectRollerByCraneId(List<Integer> craneIds);

    Roller getByName(String craneType);
}
